import HttpRequest from "./HttpRequest.js";
import { $constant } from "@/config/constant.js";

// 额外的配置信息
const extraConfig = {
  // 请求前处理
  beforeRequest(res, payload) {
    return res;
  },
  //响应前的处理
  beforeResponse(res, payload) {
    let data;
    switch (res.status) {
      case $constant.statusCode.SUCCESS:
        // 成功的返回
        data = res.data.data;
        break;
      case $constant.statusCode.REDIRECT:
        // 重定向
        data = res.data.data;
        break;
      case $constant.statusCode.ERROR_WEB:
        // 前端报错
        data = res.data.data;
        break;
      case $constant.statusCode.ERROR_JAVA:
        // 后端错误
        data = res.data.data;
        break;
      default:
        break;
    }
    return data;
  },
  errorCapture(err, payload) {
    //错误捕捉
    return err;
  },
};

// 基本的配置信息
const baseConfig = {
  baseURL: $constant.baseURL,
  timeout: $constant.timeout,
  headers: {
    "Content-Type": $constant.ContentType.JSON,
  },
};

export const $http = new HttpRequest({
  ...baseConfig,
  extraConfig: { ...extraConfig },
});
